home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / ape-ad1a / ddrawcod.bas < prev    next >
BASIC Source File  |  1999-09-21  |  6KB  |  175 lines

  1. Attribute VB_Name = "DDrawCode"
  2. Public myScreen As New CDXVBScreen
  3. Public myFPS As New CDXVBFPS
  4. Dim MenuBack As New CDXVBSurface
  5. Dim MenuItems(1 To 8) As New CDXVBSurface
  6.  
  7. Public myMap As CDXVBMap
  8. Public HealthBar As CDXVBSurface
  9. Public LevelBack As CDXVBLayer
  10.  
  11. Public PausedBack As New CDXVBSurface
  12.  
  13. Public noise(1) As New CDXVBSurface
  14. Private b1 As Boolean
  15.  
  16. Public myCredits As New CDXVBCredits
  17.  
  18. Public myTyper As New CDXVBTypewriter
  19.  
  20. Public Sub InitDDraw()
  21.     myScreen.HideMouse
  22.  
  23.     myScreen.CreateFullScreen frmMain.hWnd, 320, 200, 16
  24.     
  25.     MenuBack.Create App.Path & Game.IMAGES_DIR & "back_menu.bmp", myScreen
  26.     MenuItems(1).Create App.Path & Game.IMAGES_DIR & "menu_new_on.bmp", myScreen
  27.     MenuItems(2).Create App.Path & Game.IMAGES_DIR & "menu_new_off.bmp", myScreen
  28.     MenuItems(3).Create App.Path & Game.IMAGES_DIR & "menu_load_on.bmp", myScreen
  29.     MenuItems(4).Create App.Path & Game.IMAGES_DIR & "menu_load_off.bmp", myScreen
  30.     MenuItems(5).Create App.Path & Game.IMAGES_DIR & "menu_save_on.bmp", myScreen
  31.     MenuItems(6).Create App.Path & Game.IMAGES_DIR & "menu_save_off.bmp", myScreen
  32.     MenuItems(7).Create App.Path & Game.IMAGES_DIR & "menu_quit_on.bmp", myScreen
  33.     MenuItems(8).Create App.Path & Game.IMAGES_DIR & "menu_quit_off.bmp", myScreen
  34.  
  35.     PausedBack.Create App.Path & Game.IMAGES_DIR & "paused.bmp", myScreen
  36.  
  37.     noise(0).Create App.Path & Game.IMAGES_DIR & "noise1.bmp", myScreen
  38.     noise(1).Create App.Path & Game.IMAGES_DIR & "noise2.bmp", myScreen
  39.     b1 = True
  40. End Sub
  41.  
  42. Public Sub CloseDDraw()
  43.     myScreen.ShowMouse
  44. End Sub
  45.  
  46. Public Sub RenderMenu()
  47.     DInputCode.UpdateMenuInput
  48.  
  49.     myScreen.ClearBack
  50.     MenuBack.Blit 0, 0, myScreen.m_lpDDSBack
  51.     If Game.MenuState = MS_NEW_ON Then
  52.         MenuItems(1).Blit 0, 84, myScreen.m_lpDDSBack
  53.     Else
  54.         MenuItems(2).Blit 0, 84, myScreen.m_lpDDSBack
  55.     End If
  56.     If Game.MenuState = MS_LOAD_ON Then
  57.         MenuItems(3).Blit 0, 114, myScreen.m_lpDDSBack
  58.     Else
  59.         MenuItems(4).Blit 0, 114, myScreen.m_lpDDSBack
  60.     End If
  61.     If Game.MenuState = MS_SAVE_ON Then
  62.         MenuItems(5).Blit 0, 144, myScreen.m_lpDDSBack
  63.     Else
  64.         MenuItems(6).Blit 0, 144, myScreen.m_lpDDSBack
  65.     End If
  66.     If Game.MenuState = MS_QUIT_ON Then
  67.         MenuItems(7).Blit 0, 174, myScreen.m_lpDDSBack
  68.     Else
  69.         MenuItems(8).Blit 0, 174, myScreen.m_lpDDSBack
  70.     End If
  71.     myScreen.Flip
  72. End Sub
  73.  
  74. Public Sub RenderExit()
  75.     myScreen.ClearBack
  76.         myScreen.SurfGetBackDC
  77.             SetTextAlign myScreen.m_HDC, TA_CENTER
  78.             SetBkMode myScreen.m_HDC, TRANSPARENT
  79.             Credits.myFont.SetFont myScreen.m_HDC
  80.             myCredits.Draw myScreen.m_HDC, myScreen.m_PixelWidth, myScreen.m_PixelHeight
  81.         myScreen.SurfReleaseBackDC
  82.     myScreen.Flip
  83. End Sub
  84.  
  85. Public Sub InitMap()
  86.     Dim tileadds(1 To 5) As String
  87.     
  88.     For i = LBound(tileadds) To UBound(tileadds)
  89.         tileadds(i) = App.Path & Game.IMAGES_DIR & "tile" & CStr(i) & ".bmp"
  90.     Next i
  91.  
  92.     Set myMap = New CDXVBMap
  93.     myMap.Create App.Path & Game.LEVELS_DIR & "level1.txt", 50, 10, 320, 200, 5, tileadds, myScreen, 32, 32
  94.  
  95.     Set HealthBar = New CDXVBSurface
  96.     HealthBar.Create App.Path & Game.IMAGES_DIR & "player_health.bmp", myScreen
  97.  
  98.     Set LevelBack = New CDXVBLayer
  99.     LevelBack.Create App.Path & Game.IMAGES_DIR & "level1_back.bmp", myScreen, 0, 0
  100. End Sub
  101.  
  102. Public Sub RenderGame()
  103.     DInputCode.UpdateGameInput
  104.  
  105.     myScreen.ClearBack
  106.         LevelBack.Draw myScreen.m_lpDDSBack
  107.         myMap.Draw myScreen.m_lpDDSBack, 0, 0, 320, 200
  108.         HealthBar.Blit 5, 5, myScreen.m_lpDDSBack
  109.         
  110.         myScreen.SurfGetBackDC
  111.             SetBkMode myScreen.m_HDC, TRANSPARENT
  112.             SetTextColor myScreen.m_HDC, RGB(0, 0, 180)
  113.             myFont.SetFont myScreen.m_HDC
  114.             TextOut myScreen.m_HDC, 0, 0, CStr(myFPS.ReturnFPS), Len(CStr(myFPS.ReturnFPS))
  115.         myScreen.SurfReleaseBackDC
  116.     myScreen.Flip
  117. End Sub
  118.  
  119. Public Sub RenderPaused()
  120.     PausedBack.Blit 0, 0, myScreen.m_lpDDSBack
  121.     myScreen.Flip
  122. End Sub
  123.  
  124. Public Sub RenderChangeLevel()
  125.     Dim nextTime As Long
  126.     Dim curTime As Long
  127.     Dim bFinished As Boolean
  128.     Dim add As Integer
  129.     
  130.     DSoundCode.LoadChangeLevelSounds
  131.     
  132.     bFinished = False
  133.     add = 50
  134.  
  135.     For i = 0 To 10
  136.         b1 = Not b1
  137.         myScreen.ClearBack
  138.         If b1 Then
  139.             noise(0).Blit 0, 0, myScreen.m_lpDDSBack
  140.         Else
  141.             noise(1).Blit 0, 0, myScreen.m_lpDDSBack
  142.         End If
  143.         myScreen.Flip
  144.         myScreen.m_lpdd.WaitForVerticalBlank DDWAITVB_BLOCKBEGIN, 0
  145.     Next i
  146.     
  147.     nextTime = timeGetTime() + add
  148.     
  149.     Do Until bFinished
  150.         curTime = timeGetTime()
  151.         
  152.         If curTime >= nextTime Then
  153.             myScreen.ClearBack
  154.             myScreen.SurfGetBackDC
  155.                 SetBkMode myScreen.m_HDC, TRANSPARENT
  156.                 Credits.myFont.SetFont myScreen.m_HDC
  157.                 
  158.                 res = myTyper.Draw(myScreen.m_HDC, "Prepare for level " & Game.LevelNumber & "...", RGB(0, 255, 0))
  159.         
  160.                 DSoundCode.PlayChangeLevelType
  161.         
  162.                 If myTyper.CurCharNo = 18 + Len(Game.LevelNumber) Then add = 750
  163.         
  164.                 If res = TW_DONETYPING Then
  165.                     bFinished = True
  166.                 End If
  167.         
  168.                 nextTime = curTime + add
  169.             myScreen.SurfReleaseBackDC
  170.             
  171.             myScreen.Flip
  172.         End If
  173.     Loop
  174. End Sub
  175.